package zj.chunan.navigate.service;

import java.io.Serializable;
import java.util.List;

import zj.chunan.navigate.dao.NavigateDao;
import zj.chunan.navigate.model.Navigate;
  
public class NavigateManager {  
	
    private NavigateDao dao = NavigateDao.getInstanece();  
    
    public Navigate get(Serializable id){  
        return dao.get(id);  
    }  
    /** 
     * 获得指定节点的所有儿子节点 
     * @param id 
     */  
    @SuppressWarnings("unchecked")  
    public List<Navigate> getChildrenById(Integer id){  
        return dao.getChildrenById(id);  
    }  
    /** 
     * 保存数据 
     * @param obj  
     */  
    public void save(Navigate obj){  
        dao.save(obj);  
    }  
    /** 
     * 更新数据 
     * @param obj  
     */  
    public void update(Navigate obj){  
        dao.update(obj);  
    }  
    /** 
     * 删除指定的一条数据 
     * @param id 
     */  
    public void removeById(Integer id){  
        dao.removeById(id);  
    }  
    /** 
     * 异步更新标题 
     * @param id 
     * @param title 
     * @return true-修改成功 false-修改失败 
     */  
    public Boolean ajaxUpdateTitle(Integer id,String title){  
        return dao.ajaxUpdateTitle(id, title);  
    }  
    /** 
     * 异步删除数据，包括其子孙节点 
     * @param id 
     * @param title 
     */  
    public void ajaxRemoveNode(Integer id){  
        Navigate obj = dao.get(id);  
        dao.downNode(obj.getParentId(), obj.getNumber(), -1);  
        dao.ajaxRemoveNode(id);  
    }  
    /** 
     * 异步移动指定节点 
     * @param id    指定的节点的id 
     * @param oldParentId   节点移动前所在的父节点 
     * @param newParentId   节点移动后的目标父节点 
     * @param nodeIndex     节点移动后的目标位置 
     */  
    public void ajaxMoveNode(int id, int oldParentId, int newParentId, int nodeIndex){  
        dao.ajaxMoveNode(id, oldParentId, newParentId, nodeIndex);  
    } 
}